package com.bbva.gptf.back.transformador;

import java.util.Locale;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.convert.converter.Converter;

import com.bbva.gptf.back.dominio.Tgpt010Perfil;
import com.bbva.gptf.dto.bean.Perfil;
import com.bbva.jee.arq.spring.core.log.I18nLog;
import com.bbva.jee.arq.spring.core.log.I18nLogFactory;

/**
 * @author Javier Estrella Rodriguez
 * @version 1.0
 * @created 07-ene-2013 18:56:31
 */
public class PerfilTransformador implements Converter<Tgpt010Perfil, Perfil> {

	@Autowired
	@Qualifier("locale_ES")
	private transient Locale localizacion;

	private final I18nLog log = I18nLogFactory
			.getLogI18n(PerfilTransformador.class);

	@Autowired
	private TipoMercadoTransformador tipoMercadoTransformador;

	@Autowired
	private TransformadorGrupoPerfil transformadorGrupoPerfil;
	Perfil perfil;

	@Override
	public Perfil convert(final Tgpt010Perfil source) {
		if (log.isTraceEnabled()) {
			log.trace(localizacion, "entrada.metodo",
					"Perfil convert(Tgpt010Perfil source)");
		}
		perfil = new Perfil();
		if (source != null) {
			perfil.setCdPerfil(source.getCdPerfil());
			perfil.setNbPerfil(source.getNbPerfil());
			perfil.setMercado(tipoMercadoTransformador.convert(source
					.getCdMercado()));
			perfil.setGrupoPerfil(transformadorGrupoPerfil.convert(source
					.getCdGrupoPerfil()));
			perfil.setFhUmo(source.getFhUmo());
			perfil.setTmUmo(source.getTmUmo());
			perfil.setCdUsuarioUmo(source.getCdUsuarioUmo());
		}
		return perfil;
	}

	public void setLocalizacion(final Locale localizacion) {
		this.localizacion = localizacion;
	}

	public void setTipoMercadoTransformador(
			final TipoMercadoTransformador tipoMercadoTransformador) {
		this.tipoMercadoTransformador = tipoMercadoTransformador;
	}

	/**
	 * @param transformadorGrupoPerfil
	 *            the transformadorGrupoPerfil to set
	 */
	public void setTransformadorGrupoPerfil(
			final TransformadorGrupoPerfil transformadorGrupoPerfil) {
		this.transformadorGrupoPerfil = transformadorGrupoPerfil;
	}

}